<?php

Yii::import('application.modules.campanias.models._base.BaseCampaniaEntidad');

class CampaniaEntidad extends BaseCampaniaEntidad {

    /**
     * @return CampaniaEntidad
     */
    public static function model($className = __CLASS__) {
        return parent::model($className);
    }

    public static function label($n = 1) {
        return Yii::t('app', 'CampaniaEntidad|CampaniaEntidads', $n);
    }

    /**
     * Devuelve el numero de acciones ralizadas por un contacto en una campaña espefifica
     * @autor Armando Maldonado <amaldonado@tradesystem.com.ec>
     * @param type $campania_id
     * @param type $contacto_id
     * @param type $entidad_tipo
     * @return type
     */
    public function countAccion($campania_id, $contacto_id, $entidad_tipo) {
//     select count(ll.id) 
//        from
//        campania_entidad ce inner join llamada ll on ce.entidad_id = ll.id
//        where ce.entidad_tipo = 'LLAMADA' and ce.campania_id = 9 and ll.contacto_id = 8
        $table = '';
        switch ($entidad_tipo) {
            case Campanias_Constants::LLAMADA:
                $table = 'llamada';
                break;
            case Campanias_Constants::EMAIL:
                $table = 'mail';
                break;
            case Campanias_Constants::SMS:
                $table = 'sms';
                break;
        };
        $command = Yii::app()->db->createCommand()
                ->select("
                       count(ll.id) as count
                        ")
                ->from("campania_entidad ce ")
                ->join("$table ll", 'll.id=ce.entidad_id')
                ->where(" ce.entidad_tipo = :tipo and ce.campania_id = :campania_id and ll.contacto_id = :contacto_id", array(
            ':contacto_id' => $contacto_id,
            ':campania_id' => $campania_id,
            ':tipo' => $entidad_tipo,
                )
        );
        $resultado = $command->queryAll();
        $count = !empty($resultado) ? $resultado[0]['count'] : 0;
        return $count;
    }

}
